#ifndef AST_EXPRESSION_LOGICAL_AND_EXPR_H
#define AST_EXPRESSION_LOGICAL_AND_EXPR_H

#include "../ASTNode.h"

class InclusiveORExpr;

/*
C99 6.5.13
logical-AND-expression:
		inclusive-OR-expression
		logical-AND-expression    &&    inclusive-OR-expression
*/
class LogicalANDExpr : public ASTNode
{
protected:
	LogicalANDExpr(void)
		: ASTNode(ASTNode::logical_AND_expression){};
public:
	LogicalANDExpr(InclusiveORExpr *pInOrExpr)
		: ASTNode(ASTNode::logical_AND_expression)
		, m_pInORExpr(pInOrExpr)
		, m_pLogicalAndExpr(NULL){};
	LogicalANDExpr(LogicalANDExpr *pLogicalAndExpr, InclusiveORExpr *pInORExpr)
		: ASTNode(ASTNode::logical_AND_expression)
		, m_pInORExpr(pInORExpr)
		, m_pLogicalAndExpr(pLogicalAndExpr){};


	virtual ~LogicalANDExpr(void);

	virtual void					codeGen();

protected:
	InclusiveORExpr *				m_pInORExpr;
	LogicalANDExpr *				m_pLogicalAndExpr;
};


#endif


